home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / html / faqs / faq / epoch-faq / info next >
Encoding:
Text File  |  1995-07-25  |  80.6 KB  |  2,157 lines

  1. Subject: GNU Epoch FAQ (Info version)
  2. Newsgroups: gnu.epoch.misc,news.answers
  3. From: dbc@cs.brown.edu (Brook Conner)
  4. Date: Mon, 5 Jul 1993 15:48:17 GMT
  5.  
  6. Archive-name: epoch-faq/info
  7. Last-modified: Sun May  2 14:38:42 EDT 1993
  8. Version: 2.0
  9. Posting-frequency: bimonthly
  10.  
  11.  
  12.  
  13. Info file: epochfaq,    -*-Text-*-
  14. produced by latexinfo-format-buffer
  15. from file: faq.texi
  16.  
  17.  
  18.  
  19. 
  20. File: epochfaq  Node: Top, Prev: Index, Up: (dir), Next: Disclaimer
  21.  
  22. What is this?
  23. =============
  24.  
  25.  
  26. This is a list of Frequently Asked Questions about the text editor
  27. Epoch.  In common Internet usage, thus, this is the Epoch FAQ.
  28.  
  29. The latest version of this FAQ will be always available via anonymous
  30. FTP to "/anonymous@ftp.ncsa.uiuc.edu:outgoing/marca/epoch" or
  31. "/anonymous@cs.uiuc.edu:pub/epoch-files/epoch"
  32.  
  33. Please feel free to send comments, suggestions, additions, and
  34. corrections to dbc.epoch-faq@cs.brown.edu.
  35.  
  36. If you are reading this as a plain text file, not as an Info file, you
  37. can search for topics by searching for the characters ^_.  If you
  38. want to search for a particular topic, for example, `Fred', search for
  39. Node: Fred.  There is an Index at the end: Node: Index.
  40.  
  41. Here is a list of the topics covered in this FAQ:
  42.  
  43. * Menu:
  44.  
  45. * Epoch and GNU Emacs:: What exactly is Epoch and how is it different
  46. from various versions of Emacs?
  47. * Configuring Epoch:: How can I make Epoch suit me better?
  48. * Windows:: How to do I control Epoch's windows?
  49. * Colors and Fonts:: How do I control colors and fonts?
  50. * Menus:: How can I add menus?
  51. * Keyboard:: How can I "fix" the keyboard?
  52. * Highlighting:: How can I get Epoch to highlight important things in
  53. my files?
  54. * Epoch-Specific Emacs Lisp Packages:: What's out there that others
  55. have already written?
  56. * Other Resources:: Where else can I get information about Epoch?
  57. * Advanced Questions:: Hacks to "fix" stuff in specific situations.
  58.  
  59. * Disclaimer:: What this FAQ does and doesn't do.
  60. * Latest Changes:: What's new in the FAQ.
  61. * Formatting the FAQ:: How to format this FAQ for printing or browsing.
  62. * Prerequisites:: What you need to know to read the FAQ.
  63. * Contributors:: Who provided the information.
  64. * Index:: An index of the questions and what they're about.
  65.  
  66.  
  67. 
  68. File: epochfaq  Node: Disclaimer, Prev: Top, Up: (dir), Next: Latest Changes
  69.  
  70. Disclaimer
  71. ==========
  72.  
  73.  
  74. Unless otherwise attributed, information below is based only on Yours
  75. Truly's use and experience with Epoch and is BY NO MEANS GUARANTEED to
  76. be correct, complete, or even coherent.  If it works for you, great;
  77. if it doesn't, let me know, but there are no guarantees.
  78.  
  79. Many of the answers given herein APPLY ONLY to Epoch 4.2.  I run Epoch
  80. on SPARCstations, DECstation 5000s, IBM RS/6000s, and HP 700s; other
  81. configurations may behave differently.  Please let me know of any such
  82. differences.
  83.  
  84. 
  85. File: epochfaq  Node: Latest Changes, Prev: Formatting the FAQ, Up: (dir), Next: Prerequisites
  86.  
  87. Latest Changes
  88. ==============
  89.  
  90.  
  91. No real changes this time around.  Just fixed some typos noticed by
  92. Larry W. Virden (lwv26@cas.org).  I also added a
  93. section about formatting the FAQ (*Note Formatting the FAQ::).
  94.  
  95. 
  96. File: epochfaq  Node: Formatting the FAQ, Prev: Disclaimer, Up: (dir), Next: Latest Changes
  97.  
  98. Formatting the FAQ
  99. ==================
  100.  
  101.  
  102. As you may have noticed, the FAQ is written in LaTeXinfo format.  It
  103. is being posted in LaTeXinfo format, and in plain Info format.  The
  104. plain Info version can be read reasonably well without an Info reader
  105. (if you don't agree, please send me mail: dbc.epoch-faq@cs.brown.edu).
  106. Of course, I recommend adding it to your Info tree.  Since an Info file
  107. contains control characters, it is possible that the file got truncated.
  108. If this is a problem for you, let me know, and I can strip out the
  109. control characters before posting.  Of course, this would mean you'd
  110. have to format the LaTeXinfo version yourself to get a valid Info
  111. file. 
  112.  
  113. The latest version of LaTeXinfo is 1.9, which is available as
  114. /ftp.ensmp.fr:pub/latexinfo/latexinfo-1.9.tar.Z
  115.  
  116. The LaTeXinfo distribution contains two important things.  The first
  117. is a style file called `latexinfo.sty', which is used by LaTeXwhen formatting this FAQ.  The second is a collection of Emacs Lisp
  118. files that allow you to format a LaTeXinfo file as an Info file.
  119. Instructions on using these things is included with the LaTeXinfo
  120. distribution.  At this time there are a lot of overfull and underfull
  121. hboxes in the file.  This is because of a great preponderance of
  122. verbatim sections.  I'll fix these as soon as I get the chance. 
  123.  
  124. Older versions include:
  125.    * An old version (1.3) of LaTeXinfo is available from the GNU Emacs
  126.        Lisp archives, such as
  127.        /gatekeeper.dec.com:/.8/GNU/elisp-archive/packages/latexinfo 
  128.    * I have found a copy of the latest version (1.7) as
  129.        /csc-sun.math.utah.edu:/pub/tex/pub/latexinfo/latexinfo-1.7.tar.z
  130.        If anyone knows of other sites, please let me know. 
  131.  
  132.  
  133.  
  134. 
  135. File: epochfaq  Node: Prerequisites, Prev: Formatting the FAQ, Up: (dir), Next: Contributors
  136.  
  137. Prerequisites
  138. =============
  139.  
  140.  
  141. In the answers in this FAQ, I assume at least a little familiarity
  142. with GNU Emacs Lisp.  Suggested resources that could be considered
  143. necessary references for material in this FAQ are:
  144.  
  145.    * The GNU Emacs and Epoch manuals (available online via C-h i).
  146.      
  147.    * The GNU Elisp manual (available via anonymous FTP as
  148.      /anonymous@prep.ai.mit.edu:pub/gnu/elisp-manual-1.03.tar.Z or
  149.      /anonymous@18.71.0.38:pub/gnu/elisp-manual-1.03.tar.Z)
  150.      
  151.    * The gnu.emacs.help FAQ in the file etc/FAQ (the latest version
  152.      is available in the gnu.emacs.help Usenet newsgroup or via FTP as
  153.      /anonymous@pit-manager.mit.edu:pub/usenet/gnu.emacs.help or
  154.      /anonymous@18.172.1.27:pub/usenet/gnu.emacs.help
  155.  
  156.  
  157. 
  158. File: epochfaq  Node: Epoch and GNU Emacs, Prev: Advanced Questions, Up: Top, Next: Configuring Epoch
  159.  
  160. Epoch and GNU Emacs
  161. ===================
  162.  
  163.  
  164. * Menu:
  165.  
  166. * What is Epoch?::
  167. * How can I get Epoch?::
  168. * What is the latest version of Epoch?::
  169. * Moving to Epoch 4 broke some lisp code that worked before::
  170. * I switched Epoch versions and my X resources are being ignored::
  171. * What's the difference between Epoch and GNU Emacs version 19?::
  172.  
  173. 
  174. File: epochfaq  Node: What is Epoch?, Up: Epoch and GNU Emacs, Next: How can I get Epoch?
  175.  
  176. What is Epoch?
  177. --------------
  178.  
  179.  
  180. Epoch is GNU Emacs on steroids: an adaptation of GNU Emacs with lots
  181. of additional support for features made possible by the X11 windowing
  182. system.  These features include multiple editing windows, arbitrary
  183. colors and fonts (fixed-width and proportional), selectable zones per
  184. buffer with arbitrary display styles (font, color, underline, stipple,
  185. pixmap), an optional separate minibuffer window, improved keyboard and
  186. mouse handling, full 8-bit character set support, and more.
  187.  
  188. Epoch, like GNU Emacs, is very customizable; much of this FAQ
  189. describes ways to customize Epoch for specific purposes.
  190.  
  191. 
  192. File: epochfaq  Node: How can I get Epoch?, Prev: What is Epoch?, Up: Epoch and GNU Emacs, Next: What is the latest version of Epoch?
  193.  
  194. How can I get Epoch?
  195. --------------------
  196.  
  197.  
  198. Epoch is available via anonymous FTP as
  199. /anonymous@cs.uiuc.edu:pub/epoch-files/epoch/epoch-4.2.tar.Z or
  200. /anonymous@128.174.252.1:pub/epoch-files/epoch/epoch-4.2.tar.Z
  201.  
  202. According to Simon Marshall (S.Marshall@sequent.cc.hull.ac.uk):
  203.  
  204. Like GNU & X11 stuff, epoch is available in the UK from
  205. uk.ac.ic.doc.src (00000510200001).  You can log on; there's help to
  206. tell you the different ways of getting source.  Epoch is in
  207. /gnu/epoch.
  208. Epoch is also available from
  209. /anonymous@aix370.rrz.uni-koeln.de:gnu/emacs/epoch or
  210. /anonymous@134.95.132.2:gnu/emacs/epoch
  211.  
  212.  
  213. Volunteers for other FTP sites outside the United States, or for
  214. mail access to Epoch source, please step forward.
  215.  
  216. 
  217. File: epochfaq  Node: What is the latest version of Epoch?, Prev: How can I get Epoch?, Up: Epoch and GNU Emacs, Next: Moving to Epoch 4 broke some lisp code that worked before
  218.  
  219. What is the latest version of Epoch?
  220. ------------------------------------
  221.  
  222.  
  223. The latest version is 4.2.  Previous versions still in use by some
  224. people include 4.0 patchlevels 0,1, and 2, 4.1, the 4.0 alpha and beta
  225. levels, and version 3.2.
  226.  
  227. Epoch 4.2 is based on GNU Emacs 18.58, which is the most recent
  228. version of GNU Emacs.
  229.  
  230. Existing installations of Epoch 4.1 should be upgraded to 4.2 as
  231. soon as possible.
  232.  
  233. 
  234. File: epochfaq  Node: Moving to Epoch 4 broke some lisp code that worked before, Prev: What is the latest version of Epoch?, Up: Epoch and GNU Emacs, Next: I switched Epoch versions and my X resources are being ignored
  235.  
  236. Moving to Epoch 4 broke some lisp code that worked before
  237. ---------------------------------------------------------
  238.  
  239.  
  240. In one of the beta versions of epoch, the term "button" was replaced
  241. by the term "zone".  The idea was, "button" was misleading (since it
  242. refered to a mouse button or a pushbutton as well).  It didn't really
  243. describe Epoch's attributed text.
  244.  
  245. As a consequence, the names of all the button-related function names
  246. and variables were changed.  There are two ways to deal with this
  247. change:
  248.  
  249.  
  250. Fset the function names
  251. .......................
  252.  
  253.  
  254. Put the following command at the head of each file of elisp code
  255. that uses buttons:
  256.  
  257.  
  258.     (require 'button)
  259.  
  260. This simply does a series of fset's to replace the "button" names with
  261. the new "zone" names.
  262.  
  263.  
  264. Edit the source
  265. ...............
  266.  
  267.  
  268. Convert all references of "button" to "zone".  You can use the
  269. function convert-current-buffer in epoch-lisp/convert-buttons.el (in
  270. the Epoch distribution) to do this automatically.
  271.  
  272. NOTE: There may be additional problems; in particular, since
  273. attributes were eliminated in Epoch 4.0, any use of them will have to
  274. be eliminated also.  This is less simple than switching from buttons
  275. to zones.  Fortunately, most Epoch packages on the net now support
  276. 4.0.  Therefore, I won't bother to come up with an answer for this one
  277. (unless someone actually needs to know).
  278.  
  279. 
  280. File: epochfaq  Node: I switched Epoch versions and my X resources are being ignored, Prev: Moving to Epoch 4 broke some lisp code that worked before, Up: Epoch and GNU Emacs, Next: What's the difference between Epoch and GNU Emacs version 19?
  281.  
  282. I switched Epoch versions and my X resources are being
  283. ignored
  284. -------
  285.  
  286.  
  287. From Martin Boyer (mboyer@ireq-robot.hydro.qc.ca):
  288.  
  289. Old versions of Epoch extracted its X default resources from
  290. the user's .Xdefaults file by hand; this is no longer the case.  If
  291. Epoch isn't picking up resources like previous versions did on your
  292. system, prior to starting Epoch do this:
  293.  
  294.  
  295.     xrdb -merge $HOME/.Xdefaults
  296.  
  297. This makes the X server's database pick up and maintain all of the
  298. resource definitions found in $HOME/.Xdefaults.
  299.  
  300. Alternatively, you can use the '-ud' command line flag to force
  301. Epoch to manually scan $HOME/.Xdefaults.
  302.  
  303. A second problem is that Epoch uses the first word in the command
  304. that executed Epoch (argument 0) to search the X resource database for
  305. Epoch resources.  Thus, if you invoke Epoch with the name:
  306.  
  307.     epoch-4.2
  308. Epoch will use the string 'epoch-4.2' to search the resource
  309. database, thereby missing the resources specified by the name 'epoch'.
  310. The workaround is to use the '-name' or '-rn' command-line option like
  311. so:
  312.  
  313.     epoch-4.2 -name epoch
  314. or:
  315.  
  316.     epoch-4.2 -rn epoch
  317. Using -name is more recommended, as it is a sort-of standard option
  318. among X applications (most X Toolkit applications support it).
  319.  
  320. 
  321. File: epochfaq  Node: What's the difference between Epoch and GNU Emacs version 19?, Prev: I switched Epoch versions and my X resources are being ignored, Up: Epoch and GNU Emacs
  322.  
  323. What's the difference between Epoch and GNU Emacs version
  324. 19?
  325. ---
  326.  
  327.  
  328. To quote directly from the GNU 'status' file (obtained via anonymous
  329. FTP as /anonymous@prep.ai.mit.edu:pub/gnu/status or
  330. /anonymous@18.71.0.38:pub/gnu/status):
  331.  
  332.        Emacs 18 maintenance continues for simple bug fixes.  Version 19
  333.        approaches release, counting among its new features before and after
  334.        change hooks, source-level debugging of Emacs Lisp programs, X
  335.        selection processing, including CLIPBOARD selections, scrollbars,
  336.        support for European character sets, floating point numbers,
  337.        per-buffer mouse commands, interfacing with the X resource manager,
  338.        mouse-tracking, lisp-level binding of function keys, and multiple X
  339.        windows (`screens' to emacs).
  340.      
  341.        Thanks go to Alan Carroll and the people who worked on Epoch for
  342.        generating initial feedback to a multi-windowed emacs.  Emacs 19
  343.        supports two styles of multiple windows, one with a separate screen
  344.        for the minibuffer, and another with a minibuffer attached to each
  345.        screen.
  346.      
  347.        A couple of other features of Version 19 are buffer allocation, which
  348.        uses a new mechanism capable of returning storage to the system when a
  349.        buffer is killed, and a new input system--all input now arrives in the
  350.        form of Lisp objects.
  351.      
  352.        Other features under consideration for later releases of Version 19
  353.        include:
  354.      
  355.         * Associating property lists with regions of text in a buffer.
  356.         * Multiple font, color, and pixmaps defined by those properties.
  357.         * Different visibility conditions for the regions, and for various
  358.                windows showing one buffer.
  359.         * Hooks to be run if point or mouse moves outside a certain range.
  360.         * Incrementally saving undo history in a file, so that recover-file
  361.                also reinstalls buffer's undo history.
  362.         * Static menu bars, and better pop-up menus.
  363.      
  364.      
  365.  
  366.  
  367. Epoch currently supports much of the new functionality of GNU Emacs
  368. v19, including some features that apparently won't be immediately
  369. available in GNU Emacs v19 (notably, associating property lists with
  370. regions of text, and multiple fonts/colors/pixmaps defined by those
  371. properties).
  372.  
  373. A postscript to this answer is a message that Richard Stallman
  374. (Mr. Gnu himself) posted to gnu.emacs.help in Apr 1992:
  375.  
  376.        Emacs 19 won't support text highlighting, but a later version will.
  377.      
  378.        We have code basically working for attaching arbitrary properties to
  379.        parts of the text, including choice of font and color.
  380.      
  381.        This feature is designed for attributes which are considered part of
  382.        the text itself.  What Epoch provides is highlighting that is part
  383.        of the presentation of the text, not logically part of the text itself.
  384.        That is useful also; I hope we will find the wherewithal to implement
  385.        that along with the other highlighting features.
  386.  
  387.  
  388. There is also a version of Emacs 19 written by Lucid.  Called "Lucid
  389. Emacs", this is something from its README about it:
  390.  
  391.        Lucid GNU Emacs 19.3 is now available.  This is a version of GNU
  392.        Emacs derived from an early version of Emacs version 19 from the
  393.        Free Software Foundation.
  394.      
  395.        You can get it via anonymous FTP from the host labrea.Stanford.EDU
  396.        (36.8.0.47). It is currently available only by FTP.  We don't have
  397.        the manpower to make tapes right now.
  398.      
  399.        Log in with the user "anonymous" and "username@host" as a password
  400.        (that is, your email address.)  Execute the command "cd
  401.        pub/gnu/lucid/".  These are the files you will find there:
  402.      
  403.        lemacs-19.3.tar.Z
  404.              The complete source distribution.  This file is about 8 megabytes.
  405.              When untarred and uncompressed, the source distribution will take up
  406.              about 20 megs. You will need an additional 12 megs or so to compile it.
  407.      
  408.        lemacs-19.3-sun4.tar.Z
  409.              This is a ready-to-run set of Sun4 executables, and a DOC file.  If
  410.              you want to use these executables, you will still need to get the file
  411.              lemacs-19.3.tar.Z, because Emacs cannot function very well without the
  412.              lisp library online.  This file is about 1.7 megs, 3.8 megs when
  413.              unpacked, 3 megs of which is the Emacs executable itself (2.1 megs if
  414.              stripped.)
  415.      
  416.        Don't forget to set "binary" mode when transferring these files.
  417.        Unpack them with some variation of the command "zcat
  418.        lemacs-19.3.tar.Z | tar -vxf -".
  419.      
  420.        .... [edit out info on lucid emacs mailing lists] ....
  421.      
  422.        Why Another Version of Emacs?
  423.        =============================
  424.      
  425.        Lucid's latest product, Energize, is a C/C++ development
  426.        environment.  Rather than invent (and force our users to learn) a
  427.        new user-interface, we chose to build part of our environment on top
  428.        of the world's best editor, GNU Emacs. (Though our product is
  429.        commercial, the work we did on GNU Emacs is free software, and is
  430.        useful without having to purchase our product.)
  431.      
  432.        We needed a version of Emacs with mouse-sensitive regions, multiple
  433.        fonts, the ability to mark sections of a buffer as read-only, the
  434.        ability to detect which parts of a buffer has been modified, and
  435.        many other features.
  436.      
  437.        Why Not Epoch?
  438.        ==============
  439.      
  440.        For our purposes, the existing version of Epoch was not sufficient;
  441.        it did not allow us to put arbitrary pixmaps/icons in buffers,
  442.        `undo' did not restore changes to regions, regions did not overlap
  443.        and merge their attributes in the way we needed, and several other
  444.        things.
  445.      
  446.        We could have devoted our time to making Epoch do what we needed
  447.        (and, in fact, we spent some time doing that) but, since the FSF
  448.        planned to include Epoch-like features in their version 19, we
  449.        decided that our efforts would be better spent improving Emacs19
  450.        instead of Epoch.
  451.      
  452.        Our original hope was that our changes to Emacs would be
  453.        incorporated into the "official" v19.  However, scheduling conflicts
  454.        arose, and we found that, given the amount of work still remaining
  455.        to be done, we didn't have time to merge with the FSF's code.
  456.        Consequently, we have released our work as a forked branch of Emacs,
  457.        instead of delaying any longer.
  458.      
  459.        It seems likely that a merger of Epoch and Lucid Emacs will occur in
  460.        the not-too-distant future.
  461.  
  462.  
  463.  
  464.  
  465. 
  466. File: epochfaq  Node: Configuring Epoch, Prev: Epoch and GNU Emacs, Up: Top, Next: Windows
  467.  
  468. Configuring Epoch
  469. =================
  470.  
  471.  
  472. * Menu:
  473.  
  474. * How can my .emacs file deal with both GNU Emacs and Epoch?::
  475. * How can I configure Epoch to support full 8-bit character sets?::
  476. * How can I cut and paste between Epoch and OpenLook?::
  477.  
  478. 
  479. File: epochfaq  Node: How can my .emacs file deal with both GNU Emacs and Epoch?, Up: Configuring Epoch, Next: How can I configure Epoch to support full 8-bit character sets?
  480.  
  481. How can my .emacs file deal with both GNU Emacs and Epoch?
  482. ----------------------------------------------------------
  483.  
  484.  
  485. An easy way to handle both GNU Emacs and Epoch within the same .emacs
  486. file is to define a variable 'running-epoch' as follows:
  487.  
  488.  
  489.   (defvar running-epoch (boundp 'epoch::version))
  490.  
  491. Then, the rest of your .emacs file can look like this:
  492.  
  493.  
  494.     (if running-epoch
  495.       (progn
  496.         ... [Epoch-specific code here] ...
  497.     ))
  498.  
  499.   ... [Emacs code here] ...
  500.  
  501. (After this, when I refer to 'your .emacs file', read that as 'the
  502. Epoch-specific portion of your .emacs file', under the assumption that
  503. you have both general and Epoch-specific parts as detailed above.)
  504.  
  505. If you have a large amount of Epoch-specific code it may be better to
  506. put it in a separate file (e.g., "epoch-specific.el"), possibly
  507. byte-compile it, then load it from your .emacs file like so:
  508.  
  509.  
  510.     (if (boundp 'epoch::version) (load "epoch-specific"))
  511.  
  512. 
  513. File: epochfaq  Node: How can I configure Epoch to support full 8-bit character sets?, Prev: How can my .emacs file deal with both GNU Emacs and Epoch?, Up: Configuring Epoch, Next: How can I cut and paste between Epoch and OpenLook?
  514.  
  515. How can I configure Epoch to support full 8-bit character
  516. sets?
  517. -----
  518.  
  519.  
  520. There are two parts to this: display and input.
  521.  
  522. Display is handled by the variables "meta-printable" and "ctl-arrow".
  523. From the documentation string for "meta-printable":
  524.  
  525.        Non-nil means meta characters, that is characters in the range
  526.        0240..0377, are printable.  Nil means display meta chars  with
  527.        backslash and octal digits.  Automatically becomes local when set in
  528.        any fashion.
  529.  
  530.  
  531. From the documentation string for "ctl-arrow":
  532.  
  533.        t means display control chars with uparrow. Nil means use backslash
  534.        and octal digits. Automatically becomes local when set in any
  535.        fashion.
  536.  
  537.  
  538. Input is handled by the flag "EIGHTBIT_KEYBOARD", which is set in config.h:
  539.  
  540.  
  541.   /* Define EIGHTBIT_KEYBOARD if you want keys in range 0240 to 0377
  542.    * to insert corresponding eight-bit characters.
  543.    */
  544.   /* #define EIGHTBIT_KEYBOARD */
  545.  
  546. Define this flag only if you are using a keyboard with direct support
  547. for 8-bit characters.
  548.  
  549.  
  550. 
  551. File: epochfaq  Node: How can I cut and paste between Epoch and OpenLook?, Prev: How can I configure Epoch to support full 8-bit character sets?, Up: Configuring Epoch
  552.  
  553. How can I cut and paste between Epoch and OpenLook?
  554. ---------------------------------------------------
  555.  
  556.  
  557. Arnold Smith (smith@cam.sri.com) says:
  558. Yes it works easily enough, it's just a little awkward in terms of
  559.   the operations required.  Here's the relevant excerpt from my
  560.   epoch-tailoring file (I use a Sun SPARCstation IPX running SunOS
  561.   4.1.2 and OW):
  562.  
  563. ;; Allow cut and paste selections to come from OpenLook windows, by using
  564. ;; CLIPBOARD rather than the default PRIMARY.  From the epoch 4.0 manual...
  565.  
  566. (setq mouse::selection-atom (intern-atom "CLIPBOARD"))
  567. ;; Install handler for selection-clear on this selection
  568. (push-selection mouse::selection-atom 'mouse-clear)
  569.  
  570. ;; The above still doesn't make things entirely simple.  To get text from
  571. ;; an epoch window into a cmdtool or shelltool window, select it by wiping
  572. ;; the cursor across the source selection while holding down the left
  573. ;; mouse key.  Then move the cursor into the destination window and press
  574. ;; the "Paste" key on the left-hand side of the keyboard.  To copy text in
  575. ;; the other direction, select it similarly in the cmdtool window, press
  576. ;; the "Copy" key, move the cursor to the epoch window, and press the
  577. ;; middle mouse button where you want the text to appear.  (Sometimes I
  578. ;; have to actually hold the middle mouse button down for a fraction of a
  579. ;; second---a light click doesn't always seem to register).
  580.  
  581.  
  582. 
  583. File: epochfaq  Node: Windows, Prev: Configuring Epoch, Up: Top, Next: Colors and Fonts
  584.  
  585. Windows
  586. =======
  587.  
  588.  
  589. * Menu:
  590.  
  591. * How do I get the minibuffer back at the bottom of my edit window?::
  592. * How do I prevent the initial edit window from appearing?::
  593. * How do I stop the windows from automatically raising upon entry?::
  594. * How do I change the cursor?::
  595. * How do I define edit screen attributes on a per-mode basis?::
  596. * How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?::
  597. * How do I iconify my entire Epoch session at once?::
  598. * Does Epoch support scrollbars?::
  599. * How can I make more room for windows?::
  600.  
  601. 
  602. File: epochfaq  Node: How do I get the minibuffer back at the bottom of my edit window?, Up: Windows, Next: How do I prevent the initial edit window from appearing?
  603.  
  604. How do I get the minibuffer back at the bottom of my edit
  605. window?
  606. -------
  607.  
  608.  
  609. Start Epoch with the command-line option '-nm'.  Alternately, in your
  610. general .Xdefaults file, specify:
  611.  
  612.          epoch.nonlocal.minibuf: False
  613.  
  614.  
  615. 
  616. File: epochfaq  Node: How do I prevent the initial edit window from appearing?, Prev: How do I get the minibuffer back at the bottom of my edit window?, Up: Windows, Next: How do I stop the windows from automatically raising upon entry?
  617.  
  618. How do I prevent the initial edit window from appearing?
  619. --------------------------------------------------------
  620.  
  621.  
  622. In other words, how do I get only the minibuffer upon startup?
  623.  
  624. There is a variable that controls whether or not an initial edit
  625. window will be provided. By default, of course, one is; to stop this
  626. from happening, put the following in your .emacs:
  627.  
  628.  
  629.     (setq inhibit-initial-screen-mapping t)
  630.  
  631. This will have no effect if you're using local minibuffers (i.e. when
  632. the minibuffer is a part of each edit window), as described above.
  633.  
  634. [Thanks to Chris Love (love@cs.uiuc.edu).]
  635.  
  636. 
  637. File: epochfaq  Node: How do I stop the windows from automatically raising upon entry?, Prev: How do I prevent the initial edit window from appearing?, Up: Windows, Next: How do I change the cursor?
  638.  
  639. How do I stop the windows from automatically raising upon
  640. entry?
  641. ------
  642.  
  643.  
  644. Specify the following in your .emacs file:
  645.  
  646.  
  647.     (setq auto-raise-screen 'minibuf)
  648.  
  649. This makes the minibuffer raise when an Epoch edit window is
  650. entered; if you don't want the minibuffer to raise itself either, do
  651. the following instead:
  652.  
  653.  
  654.     (setq auto-raise-screen nil)
  655.  
  656. 
  657. File: epochfaq  Node: How do I change the cursor?, Prev: How do I stop the windows from automatically raising upon entry?, Up: Windows, Next: How do I define edit screen attributes on a per-mode basis?
  658.  
  659. How do I change the cursor?
  660. ---------------------------
  661.  
  662.  
  663. Another noticeable change from GNU Emacs is the cursor glyph (which is
  664. a pencil shape).  To change this to a more normal-appearing arrow
  665. shape, put this in your .emacs file:
  666.  
  667.  
  668.     (cursor-glyph 68)
  669.     (cursor-glyph 68 (epoch::minibuf-screen))
  670.     (push '(cursor-glyph . 68) epoch::screen-properties)
  671.  
  672. NOTE: You can specify a different cursor glyph for the minibuffer,
  673. if you like.
  674.  
  675. There are also X resources for the screen and minibuffer cursor
  676. glyphs; equivalent to the above elisp code would be the following (in
  677. your .Xdefaults file):
  678.  
  679.          epoch.screen.cursor.glyph: 68
  680.          epoch.minibuf.cursor.glyph: 68
  681.  
  682.  
  683. For either of these approaches, any valid cursor ID number will do; to
  684. see the available cursors and their ID numbers, take a look at the
  685. file /usr/include/X11/cursorfont.h.
  686.  
  687. (*Note How do I define edit screen attributes on a per-mode basis?::, for details on how to customize the cursor glyph based on
  688. the mode of a screen's initial buffer.)
  689.  
  690. 
  691. File: epochfaq  Node: How do I define edit screen attributes on a per-mode basis?, Prev: How do I change the cursor?, Up: Windows, Next: How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?
  692.  
  693. How do I define edit screen attributes on a per-mode basis?
  694. -----------------------------------------------------------
  695.  
  696.  
  697. Or, how do I make my C++ edit windows come up with 48 lines and a big
  698. round dot for a cursor?
  699.  
  700. You can define styles for new edit screens created with
  701. find-file-other-screen (which is, by default, bound to 'C-z 4 C-f' and
  702. 'C-z 4 f') based on the initial buffer's mode like so:
  703.  
  704.  
  705.     (setq epoch-mode-alist
  706.       (append (list
  707.           (cons 'c-mode
  708.             (list
  709.               (cons 'geometry "80x52")
  710.               (cons 'cursor-glyph 94)))
  711.           (cons 'LaTeX-mode
  712.             (list
  713.               (cons 'geometry "90x48")
  714.               (cons 'cursor-glyph 58)))
  715.           (cons 'c++-mode
  716.             (list
  717.               (cons 'geometry "80x48")
  718.               (cons 'cursor-glyph 38))))
  719.         epoch-mode-alist))
  720.  
  721. 
  722. File: epochfaq  Node: How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?, Prev: How do I define edit screen attributes on a per-mode basis?, Up: Windows, Next: How do I iconify my entire Epoch session at once?
  723.  
  724. How do I make Epoch manage edit window and icon names based
  725. on the name of the current buffer(s)?
  726. -------------------------------------
  727.  
  728.  
  729. The base Epoch distribution doesn't support this, but there have
  730. been a number of small packages written that accomplish this.  There
  731. is one written by Derek Ney (derek@boingo.med.jhu.edu) up for
  732. anonymous FTP at ftp.ncsa.uiuc.edu (141.142.20.50) as
  733. /outgoing/marca/epoch/derek-title.el.Z.  Another one can be found in
  734. the epoch sources at ftp.uu.net (in the directory
  735. /languages/emacs-lisp/epoch).
  736.  
  737. 
  738. File: epochfaq  Node: How do I iconify my entire Epoch session at once?, Prev: How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?, Up: Windows, Next: Does Epoch support scrollbars?
  739.  
  740. How do I iconify my entire Epoch session at once?
  741. -------------------------------------------------
  742.  
  743.  
  744. By default, 'C-z i' is bound to iconify-screen, which only iconifies
  745. the current edit window.  To iconify everything, define a small
  746. function iconify-everything in your .emacs file like so:
  747.  
  748.  
  749.     (defun iconify-everything ()
  750.       "Iconify entire Epoch session at once."
  751.       (interactive)
  752.       (dolist (s (screen-list))
  753.         (iconify-screen s))
  754.       (iconify-screen 0)
  755.     )
  756.  
  757. Then bind it to a key sequence (e.g. C-z C-i) like so:
  758.  
  759.  
  760.     (global-set-key "\C-z\C-i" 'iconify-everything)
  761.  
  762. 
  763. File: epochfaq  Node: Does Epoch support scrollbars?, Prev: How do I iconify my entire Epoch session at once?, Up: Windows, Next: How can I make more room for windows?
  764.  
  765. Does Epoch support scrollbars?
  766. ------------------------------
  767.  
  768.  
  769. No; native support for scrollbars is a technical challenge that so far
  770. no one has taken up for either GNU Emacs or Epoch.
  771.  
  772. Alternatively, pick up the widgets package from cs.uiuc.edu, in
  773. pub/epoch-files/widgets/widgets.tar.Z.  This is a Motif-only "widget
  774. server" that epoch can talk to.  It will produce a nice Motif
  775. scroll-bar on the side of your epoch screen.  It does a lot more, but
  776. as far as I can tell, that's all it does out of the box (i.e., without
  777. writing some lisp code).  Somebody correct me if I'm wrong, here.
  778.  
  779. [Thanks to Pierre Bondono (bondono@vnet.ibm.com) for the following:]
  780.  
  781. Related to this, there is a "scrolling concept" inside the IMOUSE
  782. packages that may be of interest.  IMOUSE can be found via anonymous
  783. FTP from ireq-robot.hydro.qc.ca (131.195.2.130); see question H-1
  784. below.
  785.  
  786. 
  787. File: epochfaq  Node: How can I make more room for windows?, Prev: Does Epoch support scrollbars?, Up: Windows
  788.  
  789. How can I make more room for windows?
  790. -------------------------------------
  791.  
  792.  
  793. My workstation's screen area is overwhelmed by all the windows I
  794. reate in my Epoch editing sessions.  How can I squeeze more windows
  795. into my working environment?
  796.  
  797. This is only a half-facetious question; there's only room on most
  798. workstation screens (usually 1024x768 or 1280x1024 pixels in area) for
  799. a couple of windows with decent-sized fonts.  To help alleviate the
  800. discomfort of cramped space, try the 'tvtwm' window manager.  (I sound
  801. like a cough-drop commercial.)
  802.  
  803. Tvtwm, a superset of the twm window manager, allows windows to be
  804. placed on a virtual root window that can be of any size (for example,
  805. 3000 by 3000 pixels).  This virtual root can be navigated via tvtwm's
  806. 'panner', a reduced-size overview of your entire environment.
  807.  
  808. Tvtwm can be found on your local comp.sources.x archive or in the
  809. X11R4 and X11R5 distributions.  Try anonymous FTP to ftp.uu.net
  810. (137.39.1.9) in /usenet/comp.sources.x.
  811.  
  812. For those people that actually like the OpenLook window manager :-),
  813. a similarly modified version of Olwm can be found in ftp.uu.net
  814. /usenet/comp.sources.x/volume14/olvwm (and a lot of other places,
  815. too).
  816.  
  817. People running on HP workstations can use the rooms metaphor built
  818. into the vuewm.  A similar, but less powerful alternative is the vr
  819. program in the contrib directory at export.lcs.mit.edu.  It, however,
  820. doesn't support spreading epoch windows around different rooms.
  821.  
  822.  
  823. 
  824. File: epochfaq  Node: Colors and Fonts, Prev: Windows, Up: Top, Next: Menus
  825.  
  826. Colors and Fonts
  827. ================
  828.  
  829.  
  830. * Menu:
  831.  
  832. * How do I interactively select my foreground color?::
  833. * How do I switch fonts interactively?::
  834. * How can I associate a certain foreground color with a file?::
  835. * How do I design my own really funky technicolor modeline?::
  836. * How do I replace the mouse region selection underlining with a different style?::
  837.  
  838. 
  839. File: epochfaq  Node: How do I interactively select my foreground color?, Up: Colors and Fonts, Next: How do I switch fonts interactively?
  840.  
  841. How do I interactively select my foreground color?
  842. --------------------------------------------------
  843.  
  844.  
  845. First, define a style for each of your desired foreground colors in
  846. your .emacs file, like so:
  847.  
  848.  
  849.     (setq red-style (make-style))
  850.     (set-style-foreground red-style "red")
  851.  
  852. Then, define a short command 'goto-style' like so:
  853.  
  854.  
  855.     (defun goto-style (newstyle)
  856.       "Set current buffer to a given font NEWSTYLE."
  857.       (setq buffer-style newstyle)
  858.       (redraw-display))
  859.  
  860. Next, bind commands to keys like so:
  861.  
  862.  
  863.     (global-set-key "\C-c1" (definteractive (goto-style red-style)))
  864.  
  865. This binds a command that changes the current foreground color to red
  866. to the key sequence C-c 1.
  867.  
  868. The following function allows you to interactive specify a new color
  869. for the current buffer's foreground:
  870.  
  871.  
  872.     (defun set-foreground (newfg)
  873.       "Set current foreground color to NEWFG."
  874.       (interactive "sForeground color: ")
  875.       (set-style-foreground buffer-style newfg)
  876.       (redraw-display))
  877.  
  878. This function is activated by typing:
  879.  
  880.          M-x set-foreground
  881.  
  882.  
  883. Or, it can be bound to a key like so:
  884.  
  885.  
  886.     (global-set-key "\C-z\C-s" 'set-foreground)
  887.  
  888. 
  889. File: epochfaq  Node: How do I switch fonts interactively?, Prev: How do I interactively select my foreground color?, Up: Colors and Fonts, Next: How can I associate a certain foreground color with a file?
  890.  
  891. How do I switch fonts interactively?
  892. ------------------------------------
  893.  
  894.  
  895. To change fonts, you don't have to define new styles.  Just define a
  896. short command 'goto-font', like so:
  897.  
  898.  
  899.     (defun goto-font (newfont)
  900.       "Set current buffer to a given font NEWFONT."
  901.       (font newfont)
  902.       (redraw-display))
  903.  
  904. Then, bind commands to keys like so:
  905.  
  906.  
  907.     (global-set-key "\C-c1" (definteractive (goto-font "8x13")))
  908.  
  909. This changes the current edit window's font to "8x13" when the key
  910. sequence 'C-c 1' is entered.
  911.  
  912. The following function allows you to interactively input a font name:
  913.  
  914.  
  915.     (defun set-font (newfont)
  916.       "Set current font to NEWFONT."
  917.       (interactive "sFont name: ")
  918.       (font newfont)
  919.       (redraw-display))
  920.  
  921. This function is activated by typing:
  922.  
  923.          M-x set-font
  924.  
  925.  
  926. Or, it can be bound to a key like so:
  927.  
  928.  
  929.     (global-set-key "\C-z\C-s" 'set-font)
  930.  
  931. If the font you specify with either of these methods isn't valid for
  932. your X server (i.e. if the font doesn't exist in a directory listed in
  933. your X server's font path and in that directory's fonts.dir file, or
  934. isn't available from the font server if you're running X11R5), you
  935. will get this message in your minibuffer:
  936.  
  937.        Bad font name
  938.  
  939.  
  940. Font names are ordinary X font names; for example, a 14-point non-bold
  941. non-italic Helvetica font can be referred to as:
  942.  
  943.        "*helvetica-medium-r-normal--14*"
  944.  
  945.  
  946. The standard X client 'xlsfonts' will give you a list of the fonts
  947. registered with your X server.  The standard X client 'xfontsel' lets
  948. you interactively put together an X font specification string based on
  949. individual attributes (e.g., family, size).
  950.  
  951. 
  952. File: epochfaq  Node: How can I associate a certain foreground color with a file?, Prev: How do I switch fonts interactively?, Up: Colors and Fonts, Next: How do I design my own really funky technicolor modeline?
  953.  
  954. How can I associate a certain foreground color with a file?
  955. -----------------------------------------------------------
  956.  
  957.  
  958. So that every time I load that file my foreground color is
  959. automatically set?
  960.  
  961. You can easily do this by using GNU Emacs' ability to handle file
  962. variables.  For example, if you have defined style 'red-style' to
  963. specify a red foreground color, and want file 'foobar.c' to always
  964. have the foreground color red, add this to the bottom of 'foobar.c':
  965.  
  966.  
  967.     ^L
  968.     /*
  969.     Local Variables:
  970.     buffer-style: red-style
  971.     End:
  972.     */
  973.  
  974. NOTE: '^L' is a newline character; you can enter one in an edit
  975. buffer by typing C-q C-l.
  976.  
  977. Then, whenever 'foobar.c' is loaded, the variable 'buffer-style' will
  978. be set to 'red-style', and as a result the foreground color for that
  979. buffer will be red.
  980.  
  981. 
  982. File: epochfaq  Node: How do I design my own really funky technicolor modeline?, Prev: How can I associate a certain foreground color with a file?, Up: Colors and Fonts, Next: How do I replace the mouse region selection underlining with a different style?
  983.  
  984. How do I design my own really funky technicolor modeline?
  985. ---------------------------------------------------------
  986.  
  987.  
  988. Using the tried-and-true Learning By Example(tm) educational method,
  989. I'll just give the (heavily commented) elisp code I use to define my
  990. own customized modeline:
  991.  
  992.  
  993.   ;; A style to emphasize things I find important
  994.   (defvar mode:*hilight-style*  (make-style)
  995.     "Style for modeline hilights"
  996.   )
  997.   (let ((s1 mode:*hilight-style*))
  998.    ;; Do something reasonable if we're on a monochrome screen
  999.     (if (> (epoch::number-of-colors) 2)
  1000.         (progn
  1001.       (set-style-foreground s1 "#83558c")
  1002.       (set-style-background s1 (foreground)))
  1003.       (progn
  1004.       (set-style-foreground s1 (background))
  1005.       (set-style-background s1 (foreground))))
  1006.     (set-style-font s1 "*helvetica-bold-r-*-*-12-*")
  1007.   )
  1008.  
  1009.   ;; A style for normal modeline contents -- inverted from normal
  1010.   ;;  buffer
  1011.   (defvar mode:*normal-style* (make-style)
  1012.     "Normal modeline style"
  1013.   )
  1014.   (let ((s2 mode:*normal-style*))
  1015.     (set-style-foreground s2 (background))
  1016.     (set-style-background s2 (foreground))
  1017.     (set-style-font s2 "*helvetica-medium-r-*-*-12*")
  1018.   )
  1019.  
  1020.   ;; define  a simpler-looking modeline format
  1021.   (setq default-mode-line-format
  1022.     (list
  1023.       ""
  1024.       'mode:*normal-style*
  1025.       'mode-line-modified
  1026.       ;; Highlight the buffer name
  1027.       'mode:*hilight-style*
  1028.       " %17b"
  1029.       'mode:*normal-style*
  1030.       "   "
  1031.       'global-mode-string
  1032.       "   %[("
  1033.       'mode-name 'minor-mode-alist "%n" 'mode-line-process
  1034.       ")%]--"
  1035.       ;; Highlight where we are in the buffer
  1036.       'mode:*hilight-style*
  1037.       (cons -3 "%p")
  1038.       'mode:*normal-style*
  1039.       "-%-"
  1040.       )
  1041.     )
  1042.  
  1043.  
  1044. 
  1045. File: epochfaq  Node: How do I replace the mouse region selection underlining with a different style?, Prev: How do I design my own really funky technicolor modeline?, Up: Colors and Fonts
  1046.  
  1047. How do I replace the mouse region selection underlining with
  1048. a different style?
  1049. ------------------
  1050.  
  1051.  
  1052. The appearance of the region underlined with the mouse is described
  1053. by the style in the variable "motion::style".  You can use the normal
  1054. style functions to manipulate this variable.  For example, you can
  1055. turn off underlining with the following:
  1056.  
  1057.  
  1058.     (set-style-underline motion::style nil)
  1059.  
  1060. Now, nothing will show up.  To have just the text foreground color
  1061. change on mouse selection, do:
  1062.  
  1063.  
  1064.     (set-style-foreground motion::style "yellow")
  1065.     (set-style-background motion::style (background))
  1066.  
  1067. Replace "yellow" with any desired X color name.
  1068.  
  1069. To have the selected region appear as reverse video, try:
  1070.  
  1071.  
  1072.     (set-style-foreground motion::style (background))
  1073.     (set-style-background motion::style (foreground))
  1074.  
  1075. To have the selected region appear with an overlayed diagonal stipple
  1076. pattern, try:
  1077.  
  1078.  
  1079.     (set-style-background motion::style "red")
  1080.     (set-style-background-stipple motion::style
  1081.       (make-bitmap 4 4 "\\167\\273\\335\\356"))
  1082.  
  1083. The style bound to motion::style has default settings as follows:
  1084.  
  1085.  
  1086.     (set-style-foreground motion::style (foreground))
  1087.     (set-style-background motion::style (background))
  1088.     (set-style-underline motion::style (foreground))
  1089.  
  1090.  
  1091. 
  1092. File: epochfaq  Node: Menus, Prev: Colors and Fonts, Up: Top, Next: Keyboard
  1093.  
  1094. Menus
  1095. =====
  1096.  
  1097. * Menu:
  1098.  
  1099. * Does Epoch support popup menus or menubars?::
  1100.  
  1101. 
  1102. File: epochfaq  Node: Does Epoch support popup menus or menubars?, Up: Menus
  1103.  
  1104. Does Epoch support popup menus or menubars?
  1105. -------------------------------------------
  1106.  
  1107.  
  1108. The base Epoch distribution does not have native support for popup
  1109. menus or menubars.  However, there are other ways to use menus with
  1110. Epoch.
  1111.  
  1112.  
  1113. Use gwm
  1114. .......
  1115.  
  1116.  
  1117. If you're running the window manager GWM (available via anonymous
  1118. FTP to export.lcs.mit.edu (18.24.0.12) in /contrib/gwm), you can use
  1119. the Epoch contrib 'wm-menu' package (found in the contrib tar file on
  1120. cs.uiuc.edu) to have GWM provide menus that pass messages to Epoch.
  1121.  
  1122.  
  1123. Use another window manager with xse or gnudoit
  1124. ..............................................
  1125.  
  1126.  
  1127. If you're running a window manager that has user-specifiable menus
  1128. (as all of the common window managers do), you can perform particular
  1129. commands from a menu.  These commands can communicate with epoch, and
  1130. get it to do things.
  1131.  
  1132. One way to do this is to use "xse" (XSendEvent) and send characters
  1133. that happen to be bound to the commands you want to activate.  To bind
  1134. arbitrary commands to menu entries in this manner, you need to define
  1135. a unique keystroke pattern (with global-set-key) for each command and
  1136. then send that keystroke pattern with xsendevent via the menu.  See
  1137. the section on rebind-key (below) for more information on this
  1138. technique.  (Of course, you are also free to have xsendevent send a
  1139. key sequence like 'ESC x u n d o RET' directly to Epoch.)
  1140.  
  1141. A better way is to use gnudoit, which communicates to gnuserv.
  1142. Gnuserv, gnuclient, and gnudoit are replacements for emacsclient and
  1143. its server.  With gnudoit, you can pass in an Emacs Lisp form to
  1144. evaluate, rather than the less readable X Event description for a key
  1145. binding.
  1146.  
  1147. Some window managers (such as TWM) do not allow the user to specify
  1148. client-specific menus -- you can only add menus to all clients.  This
  1149. is not an ideal solution, since all windows (Epoch or not) in the
  1150. session will have the menu attached to them, but it does work and is
  1151. quite convenient for use with Epoch.  Other window managers (Mwm in
  1152. particular) allow you to specify a menu on a client-by-client basis.
  1153. Thus, you can have different menus on terminal windows from on Epoch
  1154. (Mwm will even let you have different menus on different screens and
  1155. on the minibuffer).
  1156.  
  1157. Here's a couple of sample Twm menu descriptions.  Note that these
  1158. would show up on all applications that have title bars.
  1159.  
  1160.  
  1161.   menu "epoch"
  1162.   {
  1163.     "Epoch Menu"   f.title
  1164.     "Undo"         ! "xse 'Ctrl<Key>x' '<Key>u'"
  1165.     "Quit"         ! "xse 'Ctrl<Key>x' 'Ctrl<Key>c'"
  1166.   }
  1167.   LeftTitleButton "~/epochbitmap.bm" = f.menu "epoch"
  1168.  
  1169. Or, using gnudoit (notice the more readable function names):
  1170.  
  1171.  
  1172.   menu "epoch"
  1173.   {
  1174.     "Epoch Menu"   f.title
  1175.     "Undo"         ! "gnudoit '(undo)'"
  1176.     "Quit"         ! "gnudoit '(save-buffers-kill-emacs)'"
  1177.   }
  1178.   LeftTitleButton "~/epochbitmap.bm" = f.menu "epoch"
  1179.  
  1180.  
  1181. Here's an equivalent Mwm menu, along with resources that will place
  1182. the menu only on Epoch windows.
  1183.  
  1184. This goes in your Mwm config file:
  1185.  
  1186.  
  1187.   Menu EpochMenu
  1188.   {
  1189.       "Epoch" f.title
  1190.       "Undo"  ! "gnudoit '(undo)'"
  1191.       "Quit"  ! "gnudoit '(save-buffers-kill-emacs)'"
  1192.   }
  1193.  
  1194. This goes in your X defaults:
  1195.  
  1196.  
  1197.   Mwm*epoch*windowMenu: EpochMenu
  1198.  
  1199. Note the "*epoch*" -- this is the class name of the screen.  If you
  1200. use the -name or -rn options (as described in A-6), this name will
  1201. change.  See the "class" attribute of screens in the epoch manual for
  1202. more on this.
  1203.  
  1204. You can get xsendevent at export.lcs.mit.edu (18.24.0.12) in /contrib
  1205. or at ftp.uu.net (137.39.1.9) in /packages/X/contrib.  Gnuserv,
  1206. gnuclient and gnudoit are available at ee.utah.edu, in
  1207. /emacs/etc/gnuserv (and probably other sites, too, but I can't find
  1208. any with Xarchie -- anyone got a good one?).
  1209.  
  1210. [From Philippe Bondono (bondono@vnet.ibm.com)., with Mwm and
  1211. gnuclient additions by Brook]
  1212.  
  1213.  
  1214. Use another client
  1215. ..................
  1216.  
  1217.  
  1218. A completely different technique involves using a separate X client
  1219. that posts a menu and has Epoch (or for that matter, GNU Emacs)
  1220. receive commands from it.  One example of this technique is
  1221. /gnu/emacs/buttons.tar.Z from anonymous FTP to aix370.rrz.uni-koeln.de
  1222. (134.95.132.2).
  1223.  
  1224. A variant method uses xmenu or xmenu2, which are available at any
  1225. comp.sources.x archive.  (If you don't know of such an archive, try
  1226. anonymous FTP to ftp.uu.net (137.39.1.9) in /usenet/comp.sources.x.)
  1227. After you have compiled xmenu or xmenu2, define the following function
  1228. in your .emacs file:
  1229.  
  1230.  
  1231.   (defun interpret-output (process output)
  1232.     (command-execute (car (read-from-string output))))
  1233.  
  1234. Then you can define other functions that make specific menus, with
  1235. menu entries bound to commands, like the following example shows:
  1236.  
  1237.  
  1238.   (defun make-menu ()
  1239.     (interactive)
  1240.     (set-process-filter (start-process "xmenu" nil
  1241.         "/usr/local/bin/xmenu" "-heading" "Epoch Menu"
  1242.         "Undo=undo")
  1243.       'interpret-output))
  1244.  
  1245. This example uses /usr/local/bin/xmenu to post a one-entry menu to the
  1246. screen; the menu entry's label is "Undo" and the action it triggers in
  1247. Epoch is 'undo'.  Specify as many "Label=action" pairs as you like as
  1248. part of the start-process command.
  1249.  
  1250. [From Philippe Bondono (bondono@vnet.ibm.com).]
  1251.  
  1252. If you use XView/Open Windows, Dev Joneja (dj7@cunixf.cc.columbia.edu)
  1253. has written a menu/button client similar to xmenu; it's available via
  1254. anonymous FTP from ftp.ncsa.uiuc.edu (141.142.20.50) as
  1255. /outgoing/marca/epoch/xvmenu.tar.Z.
  1256.  
  1257.  
  1258. Use Hyperbole
  1259. .............
  1260.  
  1261.  
  1262. Bob Weiner (rsw@cs.brown.edu) says the following concerning menus
  1263. within Hyperbole:
  1264.  
  1265. If you use Hyperbole, you know what the Smart Key system is, context
  1266.   sensitive key bindings for many Emacs modes and subsystems.  There is
  1267.   a Smart Menu system that goes along with this but has not been
  1268.   released because it needs some additional menus and some integration
  1269.   work.  It is window manager and window system independent, works under
  1270.   Emacs, with a slightly customized version that can highlight selected
  1271.   menu items and display menus in a separate Epoch screen, and is
  1272.   written entirely in Elisp, so no patching is needed.  It provides much
  1273.   easier subsystem access for novices and experienced users and has been
  1274.   in use at a few sites for the last several years.
  1275.  
  1276.   I'd like to get it in a form for release but won't have the time for
  1277.   several months.  If an experienced Elisp programmer wanted to
  1278.   integrate it with Hyperbole and make any other changes, I [Bob, not
  1279.   Brook] would be willing to send it out and coordinate on and test the
  1280.   final changes.
  1281. See the list of FTP sites below for more information on Hyperbole.
  1282.  
  1283. 
  1284. File: epochfaq  Node: Keyboard, Prev: Menus, Up: Top, Next: Highlighting
  1285.  
  1286. Keyboard
  1287. ========
  1288.  
  1289.  
  1290. * Menu:
  1291.  
  1292. * How do I make the backspace key work properly?::
  1293. * How can I use Page Up and Page Down keys?::
  1294. * How can I stop function keys from putting garbage in my buffer?::
  1295. * How do I turn the keyboard bell off?::
  1296.  
  1297. 
  1298. File: epochfaq  Node: How do I make the backspace key work properly?, Up: Keyboard, Next: How can I use Page Up and Page Down keys?
  1299.  
  1300. How do I make the backspace key work properly?
  1301. ----------------------------------------------
  1302.  
  1303.  
  1304. This is actually a GNU Emacs question, but it's included in this FAQ
  1305. because it's probably more important to more people than all the other
  1306. questions here.  (One of the great mysteries of GNU Emacs is why the
  1307. backspace key _still_ doesn't do its job.)
  1308.  
  1309. Here are four ways to fix this:
  1310.  
  1311.  
  1312. Use rebind-key
  1313. ..............
  1314.  
  1315.  
  1316. Put this in your .emacs file:
  1317.  
  1318.  
  1319.     (rebind-key "BackSpace" nil "\C-?")
  1320.  
  1321. This is the cleanest Epoch-specific solution.  It rebinds
  1322. the X representation for the backspace key directly to that of the
  1323. delete key.
  1324.  
  1325. [Thanks to Joe Wells (jbw@bigbird.bu.edu).]
  1326.  
  1327. Ole Vignes (VIGNES@BG.HBG.HYDRO.NO) suggests this as a slight
  1328. variation:
  1329. I have found that the following definitions for the backspace key 
  1330.   work slightly better than those described in the FAQ file:
  1331.  
  1332.  
  1333.      (rebind-key "BackSpace" nil    "\177")
  1334.      (rebind-key "BackSpace" 'shift "\177")
  1335.  
  1336.   Sending the character "177" (DEL) instead of a sequence like
  1337.   "C-^bdc" has the advantage that the backspace key can be used to
  1338.   rub out characters inside an isearch. This does not work with the
  1339.   other method. This is particularly handy for me, since I have
  1340.   rebound the Delete key to do the same as "C-d", delete-char. The
  1341.   second line is to make sure the backspace key also works when Caps
  1342.   Lock  is on.  :-)
  1343.  
  1344. Use global-set-key and rebind-key
  1345. .................................
  1346.  
  1347.  
  1348. Put this in your .emacs file:
  1349.  
  1350.  
  1351.     (global-set-key "\C-^bdc" 'backward-delete-char-untabify)
  1352.     (rebind-key "BackSpace" nil "\C-^bdc")
  1353.  
  1354. This rebinds the X representation for the backspace key to the
  1355. appropriate command for deleting a character backward.  Like the first
  1356. method, this is Epoch-specific.
  1357.  
  1358. If you don't like to have your backspace key also untabify (i.e.,
  1359. convert tags to spaces on the fly), use this instead of the previous
  1360. global-set-key:
  1361.  
  1362.  
  1363.     (global-set-key "\C-^bdc" 'backward-delete-char)
  1364.  
  1365.  
  1366. Use global-set-key
  1367. ..................
  1368.  
  1369.  
  1370. Put this in your .emacs file:
  1371.  
  1372.  
  1373.     (global-set-key "\C-h" 'backward-delete-char-untabify)
  1374.     (global-set-key "\C-xh" 'help-command) ; override mark-whole-buffer
  1375.  
  1376. This makes C-h (the backspace key as well as the Control-h key
  1377. sequence) delete characters backward, and shifts responsibility for
  1378. help to C-x h.  This fix will work for GNU Emacs as well as Epoch.
  1379.  
  1380. If you don't like to have your backspace key also untabify (i.e.,
  1381. convert tabs to spaces on the fly), use this instead of the previous
  1382. global-set-key for C-h:
  1383.  
  1384.  
  1385.     (global-set-key "\C-h" 'backward-delete-char)
  1386.  
  1387.  
  1388. Use xmodmap
  1389. ...........
  1390.  
  1391.  
  1392. Outside of Epoch, you can change the X representation of the
  1393. BackSpace key into a Delete by doing this:
  1394.  
  1395.          xmodmap -e "keysym BackSpace = Delete"
  1396.  
  1397.  
  1398. This approach has the disadvantage of not being done inside
  1399. of Epoch for those who prefer customizing lisp code to customizing
  1400. their system environments.
  1401.  
  1402. [Thanks to Joe Wells (jbw@bigbird.bu.edu).]
  1403.  
  1404. 
  1405. File: epochfaq  Node: How can I use Page Up and Page Down keys?, Prev: How do I make the backspace key work properly?, Up: Keyboard, Next: How can I stop function keys from putting garbage in my buffer?
  1406.  
  1407. How can I use Page Up and Page Down keys?
  1408. -----------------------------------------
  1409.  
  1410.  
  1411. How do I make the keys marked "Page Up" and "Page Down" on an IBM
  1412.  Selectric-style keyboard do their jobs?
  1413.  
  1414. Using the key rebinding facility discussed below, you can put the
  1415. following two lines in your .emacs file:
  1416.  
  1417.  
  1418.     (rebind-key "Prior" nil "\M-v") ; Note Prior, not Page Up.
  1419.     (rebind-key "Next" nil "\C-v")  ; Note Next, not Page Down.
  1420.  
  1421. Similarly, if you want "Home" and "End" to go to the beginning and end
  1422. of the current buffer respectively, do:
  1423.  
  1424.  
  1425.     (rebind-key "Home" nil "\M-<")
  1426.     (rebind-key "End" nil "\M->")
  1427.  
  1428.  
  1429. How do I bind keys in the numeric keypad on an IBM
  1430. Selectric-style
  1431.  keyboard to their obvious functions (arrow movement, home, end, etc.)?
  1432. .......................................................................
  1433.  
  1434.  
  1435. Put these lines in your .emacs file:
  1436.  
  1437.  
  1438.     (rebind-key "KP_Home" nil "\M-<")
  1439.     (rebind-key "KP_Up" nil "\C-p")
  1440.     (rebind-key "KP_Prior" nil "\M-v")
  1441.     (rebind-key "KP_Left" nil "\C-b")
  1442.     (rebind-key "KP_Begin" nil "\C-l")
  1443.     (rebind-key "KP_Right" nil "\C-f")
  1444.     (rebind-key "KP_End" nil "\M->")
  1445.     (rebind-key "KP_Down" nil "\C-n")
  1446.     (rebind-key "KP_Next" nil "\C-v")
  1447.  
  1448. NOTE: This makes the keypad arrow keys work, the keypad PgUp/PgDown
  1449. work, and the keypad Home/End go to the beginning/end of the buffer.
  1450.  
  1451. Other keys appropriate for rebinding in a Selectric-style numeric
  1452. keypad include KP_Divide, KP_Multiply, KP_Subtract, KP_Add, KP_Enter,
  1453. KP_Insert, and KP_Delete; see below for more details.
  1454.  
  1455.  
  1456. What general facilities does Epoch provide for rebinding function
  1457.  keys, and how do I use them?
  1458. .............................
  1459.  
  1460.  
  1461. The rebind-key function allows you to rebind any keycode to a new
  1462. string.  An example is probably best to show how this works.  To make
  1463. the key marked "Page Up" (on IBM Selectric-style keyboards) actually
  1464. move the current buffer up a page (like M-v), do:
  1465.  
  1466.  
  1467.     (rebind-key "Prior" nil "\M-v")
  1468.  
  1469. Note that "Prior" is the actual X keysym name for the "Page Up" key;
  1470. to see the X keysym names, refer to /usr/include/X11/keysymdef.h (or
  1471. $OPENWINHOME/include/X11/keysymdef.h on OpenWindows systems).
  1472. (Disregard the leading XK_ in keysymdef.h's definitions for Epoch's
  1473. purposes; thus, X11's "XK_Prior" becomes Epoch's "Prior".  To find out
  1474. which keys are actually active for your keyboard and server, use the
  1475. command "xmodmap -pk".)
  1476.  
  1477. The standard function keys are named F1 through F12, the function keys
  1478. on the left side of a Sun-style keyboard are named L1 through L10, and
  1479. so on.  The keypad apparently cannot be addressed by KP_0 through KP_9
  1480. but must be referenced by names like KP_Left, KP_Up, and so on.
  1481.  
  1482. A simple two-step approach for binding function keys to commands
  1483. involves binding a key to an arbitrary GNU Emacs key encoding (in the
  1484. following example, C-^ k 1) and then binding that encoding to the
  1485. command.  An example that binds the function key marked "End" to an
  1486. arbitrary command (in this case, end-of-line) follows:
  1487.  
  1488.  
  1489.     (rebind-key "End" 0 "\C-^k1")
  1490.     (global-set-key "\C-^k1" 'end-of-line)
  1491.  
  1492. Note that the above is only an example of the two-step method; if you
  1493. really want "End" to do 'end-of-line, do the obvious instead:
  1494.  
  1495.  
  1496.     (rebind-key "End" 0 "\C-e")
  1497.  
  1498. The rebind-key command allows modifiers (e.g. shift, control) to be
  1499. specified; the following example binds Control-"End" to an arbitrary
  1500. command (in this case, end-of-buffer):
  1501.  
  1502.  
  1503.     (rebind-key "End" 'control "\C-^Ck1")
  1504.     (global-set-key "\C-^Ck1" 'end-of-buffer)
  1505.  
  1506. For an example of these principles in action, see the file
  1507. 'amc/keys.el' in the 3.2 contrib directory (which is still up for
  1508. anonymous ftp at cs.uiuc.edu as a separate .tar.Z file) or at
  1509. ftp.ncsa.uiuc.edu in /outgoing/marca/epoch.
  1510.  
  1511. [Thanks to Alan Carroll (carroll@cs.uiuc.edu).]
  1512.  
  1513. 
  1514. File: epochfaq  Node: How can I stop function keys from putting garbage in my buffer?, Prev: How can I use Page Up and Page Down keys?, Up: Keyboard, Next: How do I turn the keyboard bell off?
  1515.  
  1516. How can I stop function keys from putting garbage in my
  1517. buffer?
  1518. -------
  1519.  
  1520.  
  1521. I want Epoch to disregard accidental presses of function keys that
  1522. insert spurious characters (e.g., "-1~") into the buffer.  Does Epoch
  1523. perchance have some magical way to make this happen?
  1524.  
  1525. Perchance, Epoch does.  The variable epoch::function-key-mapping, if
  1526. set to nil, makes Epoch disregard such keys, unless they're explicitly
  1527. rebound with rebind-key.  You can set this in your .emacs file like
  1528. so:
  1529.  
  1530.  
  1531.     (setq epoch::function-key-mapping nil)
  1532.  
  1533. [Thanks to Alan Carroll (carroll@cs.uiuc.edu).]
  1534.  
  1535. 
  1536. File: epochfaq  Node: How do I turn the keyboard bell off?, Prev: How can I stop function keys from putting garbage in my buffer?, Up: Keyboard
  1537.  
  1538. How do I turn the keyboard bell off?
  1539. ------------------------------------
  1540.  
  1541.  
  1542. The easy answer is to put the following line in your .emacs file:
  1543.  
  1544.  
  1545.     (setq epoch::bell-volume -50)
  1546.  
  1547. Another possibility, if you like visual bells (i.e., having the
  1548. entire edit window flash reverse video instead of hearing an audible
  1549. beep), is to put the following in your .emacs file:
  1550.  
  1551.  
  1552.     (epoch::set-bell t)
  1553.  
  1554. The malicious answer, for those who, like myself, never want to hear
  1555. another beep for the rest of time, is to modify src/x11term.c in the
  1556. Epoch distribution; just change the line that reads:
  1557.  
  1558.  
  1559.     XBell (xs->display,volume);
  1560.  
  1561. To:
  1562.  
  1563.  
  1564.     /* XBell (xs->display,volume); */
  1565.  
  1566. Then recompile.
  1567.  
  1568. 
  1569. File: epochfaq  Node: Highlighting, Prev: Keyboard, Up: Top, Next: Epoch-Specific Emacs Lisp Packages
  1570.  
  1571. Highlighting
  1572. ============
  1573.  
  1574.  
  1575. * Menu:
  1576.  
  1577. * How do I highlight regions of text in a buffer with different styles?::
  1578. * Can I use highlighting packages on monochrome displays?::
  1579.  
  1580. 
  1581. File: epochfaq  Node: How do I highlight regions of text in a buffer with different styles?, Up: Highlighting, Next: Can I use highlighting packages on monochrome displays?
  1582.  
  1583. How do I highlight regions of text in a buffer with
  1584. different styles?
  1585. -----------------
  1586.  
  1587.  
  1588. While the current Epoch distribution contain plenty of support for
  1589. zones and styles, the enabling mechanisms that make syntax-directed
  1590. highlighting possible, no intrinsic support for such highlighting is
  1591. provided.  This situation may change in subsequent releases of Epoch.
  1592.  
  1593. Three packages that provide varying degrees of support for
  1594. syntax-directed highlighting are:
  1595.  
  1596. tek-highlight-2.0.tar.Z     
  1597.       (available from archive.cis.ohio-state.edu
  1598.        or ftp.ncsa.uiuc.edu, see below), which supports comment highlighting
  1599.        in source code as well as support for the Info documentation browser,
  1600.        various mail and news packages, and manual pages.
  1601.      
  1602.        Version 2.1.2 (beta) of tek-highlight is available for anonymous ftp
  1603.        as /rle-vlsi.mit.edu:pub/tek-highlight-2.1.1.beta.shar or
  1604.        /18.62.0.214:pub/tek-highlight-2.1.1.beta.shar 
  1605.        and
  1606.        /rle-vlsi.mit.edu:pub/tek-highlight-diff-2.1.1.beta-2.1.2.beta.shar
  1607.        /18.62.0.214:pub/tek-highlight-diff-2.1.1.beta-2.1.2.beta.shar
  1608.      
  1609.        rwhitby@research.canon.oz.au says:
  1610.        My thanks go to Luis Miguel Silveira for allowing the use of his
  1611.          machine for ftp access.
  1612.          Please mail any bug reports (and documentation additions) to:
  1613.          rwhitby@research.canon.oz.au 
  1614. lightbrite.tar.Z     
  1615.       (available from ftp.ncsa.uiuc.edu, see below),
  1616.        written by Marc Andreessen to allow per-mode regexp-based
  1617.        highlighting.  Thus, you can have all #define's/#endif's in red,
  1618.        setq's and defun's in green, int/float/double's in yellow, '-->'s in
  1619.        purple, and so on.  Here's something from its README:
  1620.         * Accurate comment highlighting.
  1621.         * Regexp touchup highlighting.
  1622.         * Easy specification of visual attributes of multiple
  1623.                 highlighting styles.
  1624.         * Instant highlighting (as you type) with adjustable
  1625.                 responsiveness.
  1626.         * Buffer size thresholds for both comment and touchup
  1627.                 highlighting.
  1628.         * Use of minor mode and local keymaps.
  1629.         * Re-highlight visible screen, current paragraph, current
  1630.                 function, immediate area, or entire buffer.
  1631.         * Large assortment of default mode-specific highlighting
  1632.                 patterns.
  1633.         * Automatic highlight on find-file and/or write-file.
  1634.         * Special handling of mail and rmail modes.
  1635.         * Works with both Epoch and Lucid Emacs transparently.
  1636.      
  1637.      
  1638. hilit.el.Z     
  1639.       (most recent version was posted to gnu.emacs.souces and is
  1640.        available from ftp.ncsa.uiuc.edu, see below), which provides
  1641.        source-code comment and regexp highlighting.
  1642.  
  1643.  
  1644. 
  1645. File: epochfaq  Node: Can I use highlighting packages on monochrome displays?, Prev: How do I highlight regions of text in a buffer with different styles?, Up: Highlighting
  1646.  
  1647. Can I use highlighting packages on monochrome displays?
  1648. -------------------------------------------------------
  1649.  
  1650.  
  1651. Sure.  Most highlighting packages let you specify the attributes
  1652. (e.g., color, font, underlining) of the various styles they use.  For
  1653. example, here's how you could get Lightbrite to show comment
  1654. characters in a different font:
  1655.  
  1656.   (defvar brite::comment-styles '(("font" . "*courier-medium-r-normal-*-14-*"))
  1657.     "*Style specification list for comment style.")
  1658.  
  1659. *Note How do I highlight regions of text in a buffer with different styles?::
  1660. 
  1661. File: epochfaq  Node: Epoch-Specific Emacs Lisp Packages, Prev: Highlighting, Up: Top, Next: Other Resources
  1662.  
  1663. Epoch-Specific Emacs Lisp Packages
  1664. ==================================
  1665.  
  1666.  
  1667. * Menu:
  1668.  
  1669. * Where can I find Epoch-specific emacs lisp packages?::
  1670. * Where can I get a PostScript version of the Epoch manual?::
  1671.  
  1672. 
  1673. File: epochfaq  Node: Where can I find Epoch-specific emacs lisp packages?, Up: Epoch-Specific Emacs Lisp Packages, Next: Where can I get a PostScript version of the Epoch manual?
  1674.  
  1675. Where can I find Epoch-specific emacs lisp packages?
  1676. ----------------------------------------------------
  1677.  
  1678.  
  1679. Try the following anonymous FTP sites for Epoch-specific emacs lisp
  1680. packages:
  1681.  
  1682. aix370.rrz.uni-koeln.de (134.95.132.2)     
  1683.      
  1684.          /gnu/emacs
  1685.      
  1686. archive.cis.ohio-state.edu (128.146.8.52)     
  1687.      
  1688.          /pub/gnu/emacs/elisp-archive/elisp
  1689.          [This is main elisp-archive site; it is mirrored at
  1690.           ftp.uu.net (137.39.1.9) in /languages/emacs-lisp, among other places.
  1691.           Not much Epoch code exists here; in particular, a much more
  1692.           recent version of hilit.el.Z is at ftp.ncsa.uiuc.edu, below.]
  1693.      
  1694. ftp.cs.buffalo.edu (128.205.32.3)     
  1695.      
  1696.          /pub
  1697.          [This is the distribution site for the new Dired, which will
  1698.           be included in Emacs v19; it includes support for Epoch.]
  1699.      
  1700. ftp.ncsa.uiuc.edu (141.142.20.50)     
  1701.      
  1702.          /outgoing/marca/epoch
  1703.          [This is the previous FAQ maintainer's archive of Epoch code; the
  1704.           README file gives an overview of what he considers to be
  1705.           'essential' Epoch packages, and all of those packages
  1706.           are available there.  If he gets out of date on any of
  1707.           these and you notice it, please let him know.]
  1708.      
  1709. icsi-ftp.berkeley.edu (128.32.201.55)     
  1710.      
  1711.          /pub/elisp
  1712.      
  1713. ireq-robot.hydro.qc.ca (131.195.2.130)     
  1714.      
  1715.          /pub/emacs/lisp
  1716.          [This is the distribution site for the IMOUSE package.]
  1717.      
  1718. wilma.cs.brown.edu (128.148.31.66)     
  1719.      
  1720.          /pub/hyperbole
  1721.          [This is the distribution site for the Hyperbole hypertext
  1722.           system, which includes support for Epoch.  Also available
  1723.           separately from here is the wrolo 'rolodex' package, one of the
  1724.           components of Hyperbole.]
  1725.  
  1726.  
  1727. Also see the contrib tar file found at cs.uiuc.edu, in the same
  1728. directory as the actual Epoch distribution.
  1729.  
  1730. Also watch the gnu.emacs.sources Usenet newsgroup, as well as the
  1731. epoch newsgroup/mailing list (see below).
  1732.  
  1733. Please volunteer the names of any sites not on this list.
  1734.  
  1735. 
  1736. File: epochfaq  Node: Where can I get a PostScript version of the Epoch manual?, Prev: Where can I find Epoch-specific emacs lisp packages?, Up: Epoch-Specific Emacs Lisp Packages
  1737.  
  1738. Where can I get a PostScript version of the Epoch manual?
  1739. ---------------------------------------------------------
  1740.  
  1741.  
  1742. Use anonymous ftp to cs.uiuc.edu (128.174.252.1) in
  1743. /pub/epoch-files/epoch; get epoch-4.0.epoch-man.ps.Z.
  1744.  
  1745.  
  1746. 
  1747. File: epochfaq  Node: Other Resources, Prev: Epoch-Specific Emacs Lisp Packages, Up: Top, Next: Advanced Questions
  1748.  
  1749. Other Resources
  1750. ===============
  1751.  
  1752.  
  1753. * Menu:
  1754.  
  1755. * What Epoch newsgroups/mailing lists are out there?::
  1756. * Where do I send bug reports?::
  1757.  
  1758. 
  1759. File: epochfaq  Node: What Epoch newsgroups/mailing lists are out there?, Up: Other Resources, Next: Where do I send bug reports?
  1760.  
  1761. What Epoch newsgroups/mailing lists are out there?
  1762. --------------------------------------------------
  1763.  
  1764.  
  1765. The Usenet newsgroup gnu.epoch.misc and the mailing list
  1766. epoch@cs.uiuc.edu are one and the same.  To join the mailing list,
  1767. send a request to epoch-request@cs.uiuc.edu.  (It is best to read the
  1768. newsgroup if you have access to it, to save on network resources and
  1769. the mailing list maintainer's time.)
  1770.  
  1771. For more general information about Epoch and GNU Emacs, see the list
  1772. of resources at the start of this file.
  1773. 
  1774. File: epochfaq  Node: Where do I send bug reports?, Prev: What Epoch newsgroups/mailing lists are out there?, Up: Other Resources
  1775.  
  1776. Where do I send bug reports?
  1777. ----------------------------
  1778.  
  1779.  
  1780. Either post to the newsgroup gnu.epoch.misc, or (equivalently) send
  1781. mail to epoch@cs.uiuc.edu (which is the newsgroup).
  1782.  
  1783.  
  1784. 
  1785. File: epochfaq  Node: Advanced Questions, Prev: Other Resources, Up: Top, Next: Epoch and GNU Emacs
  1786.  
  1787.  
  1788.  
  1789. Advanced Questions
  1790. ==================
  1791.  
  1792.  
  1793. [NOTE: This section is at the end since the questions involve actual
  1794. source-code hacking or problems with specific machine configurations
  1795. that the FAQ moderator cannot personally verify and whose solutions will
  1796. probably involve some sort of hacking.  If these answers helped you,
  1797. please let me know.  If I don't hear of people finding these useful, I'm
  1798. going to remove them.]
  1799.  
  1800.  
  1801. Problems with Meta on HPs
  1802. -------------------------
  1803.  
  1804.  
  1805. Epoch 4.0b1 (or later) (as well as GNU Emacs 18.58) built
  1806. under  HP-UX 8.0 and 8.05 apparently don't recognize the Meta key as
  1807. Alt. How can this be fixed?
  1808.  
  1809. Bob Fisher (bob@fisher.depaul.edu) suggests the following command,
  1810. executed once per session, prior to starting Epoch:
  1811.  
  1812.  
  1813.           xmodmap -e "clear mod1"        \
  1814.                   -e "add mod1 = Meta_R" \
  1815.                   -e "add mod1 = Meta_L"
  1816.  
  1817.  
  1818. Problems with colors on multiple screens
  1819. ----------------------------------------
  1820.  
  1821. Why do all of Epoch's colors go away when Epoch is run on an
  1822. X11R5 server with multiple screens?
  1823.  
  1824. Dana Chee (dana@thumper.bellcore.com) reports that X11R5 has a new
  1825. SCREEN_RESOURCES property that allows/forces colors to only appear for
  1826. color screens, but Epoch doesn't look at this property.  This bug will
  1827. only bite you if you're running on a multi-screen system.  If it
  1828. happens, there is a workaround; see the xrdb manpage and the xrdb
  1829. option '-all'.
  1830.  
  1831.  
  1832. The cursor disappears sometimes
  1833. -------------------------------
  1834.  
  1835.  
  1836. Even though Epoch 4.0b1 includes fixes to keep the cursor from
  1837. disappearing (as it does on occasion, especially in a shell, in Epoch
  1838. 4.0b0), the cursor still disappears sometimes.  Is there a fix for
  1839. this?
  1840.  
  1841. First, Epoch 4.0p0 has additional fixes for this problem which
  1842. presumably will supersede the fix given below.
  1843.  
  1844. According to Michael Thome (mthome@bbn.com), activating the XFlush
  1845. code at the end of the CursorToggle routine in 4.0b1's x11term.c seems
  1846. to fix the problem.  (In other words, '#if 0' on line 737 of x11term.c
  1847. should be changed to '#if 1'.)
  1848.  
  1849.  
  1850. Immediate iconification on startup
  1851. ----------------------------------
  1852.  
  1853. I want Epoch to iconify itself immediately upon starting.  To this end,
  1854. in my .emacs file I have (epoch::iconify-screen).  But most (95%) of the
  1855. time this doesn't work.  How can I make it work all the time?
  1856.  
  1857. The technical explanation appears to be that the initial Epoch
  1858. minibuffer and edit screen are unmapped after creation to set some
  1859. properties for ICCCM purposes and then remapped, and this interferes
  1860. with the iconification process.
  1861.  
  1862. One workaround (that may or may not work for you) is to add a sit-for
  1863. command to your .emacs file right before epoch::iconify-screen; for
  1864. example:
  1865.  
  1866.  
  1867.     (sit-for 15)
  1868.     (epoch::iconify-screen)
  1869.  
  1870. [Thanks to Bobby Bodenheimer (bobby@hot.caltech.edu), Simon Kaplan
  1871. (kaplan@cs.uiuc.edu), and Chris Love (love@cs.uiuc.edu).]
  1872.  
  1873.  
  1874. 
  1875. File: epochfaq  Node: Contributors, Prev: Prerequisites, Up: (dir), Next: Index
  1876.  
  1877.  
  1878. Contributors
  1879. ============
  1880.  
  1881.  
  1882. Thanks to the following people for contributing to this FAQ (whether
  1883. knowingly or not :-) as well as anyone else I may have inadvertently
  1884. forgotten to list:
  1885.  
  1886.    * Bobby Bodenheimer (bobby@hot.caltech.edu)
  1887.    * Philippe Bondono (bondono@vnet.ibm.com)
  1888.    * Martin Boyer (mboyer@ireq-robot.hydro.qc.ca)
  1889.    * Alan Carroll (carroll@cs.uiuc.edu)
  1890.    * Nhi Casey (nhi@ariel.aero.org)
  1891.    * Dana Chee (dana@thumper.bellcore.com)
  1892.    * Alice Chen (alice@innerdoor.austin.ibm.com)
  1893.    * Bob Fisher (bob@fisher.depaul.edu)
  1894.    * Jerry Graves (jerry@math.ep.utexas.edu)
  1895.    * Dev Joneja (dj7@cunixf.cc.columbia.edu)
  1896.    * Simon Kaplan (kaplan@cs.uiuc.edu)
  1897.    * Tor Lillqvist (tml@tik.vtt.fi)
  1898.    * Chris Love (love@cs.uiuc.edu)
  1899.    * Simon Marshall (S.Marshall@sequent.cc.hull.ac.uk)
  1900.    * Rob McCool (robm@ncsa.uiuc.edu)
  1901.    * Arnold Smith (smith@cam.sri.com)
  1902.    * Michael Thome (mthome@bbn.com)
  1903.    * Ole Vignes (VIGNES@BG.HBG.HYDRO.NO)
  1904.    * Bob Weiner (rsw@cs.brown.edu)
  1905.    * Joe Wells (jbw@bigbird.bu.edu)
  1906.  
  1907.  
  1908. Thanks particularly to Jerry Graves for much FAQ work.
  1909.  
  1910. Thanks also to all the people who have spent time and effort
  1911. developing Epoch and associated packages.
  1912.  
  1913. And thanks most especially to Marc Andreessen marca@ncsa.uiuc.edu, the
  1914. previous maintainer of this FAQ, who has gone on to greater glory,
  1915. working directly with the epoch team.
  1916.  
  1917. 
  1918. File: epochfaq  Node: Index, Prev: Contributors, Up: (dir), Next: Top
  1919.  
  1920. Index
  1921. =====
  1922.  
  1923.  
  1924. This is an index of all the FAQ questions and what they are about.
  1925.  
  1926.  
  1927. * Menu:
  1928.  
  1929. * 8-bit characters: How can I configure Epoch to support full 8-bit character sets?.
  1930. * Advanced Questions: Advanced Questions.
  1931. * Andreessen, Marc: Contributors.
  1932. * Anonymous FTP: How can I get Epoch?.
  1933. * Associating colors with files: How can I associate a certain foreground color with a file?.
  1934. * Backspace key not working: How do I make the backspace key work properly?.
  1935. * Bell, turning it off: How do I turn the keyboard bell off?.
  1936. * Bodenheimer, Bobby: Advanced Questions.
  1937. * Bodenheimer, Bobby: Contributors.
  1938. * Bondono, Philippe: Contributors.
  1939. * Bondono, Pierre: Does Epoch support scrollbars?.
  1940. * Boyer, Martin: Contributors.
  1941. * Broken backspace key: How do I make the backspace key work properly?.
  1942. * Bugs, reporting: Where do I send bug reports?.
  1943. * Buttons: Moving to Epoch 4 broke some lisp code that worked before.
  1944. * Can I use highlighting packages on monochrome displays?: Can I use highlighting packages on monochrome displays?.
  1945. * Carroll, Alan: Contributors.
  1946. * Carroll, Alan: How can I stop function keys from putting garbage in my buffer?.
  1947. * Carroll, Alan: How can I use Page Up and Page Down keys?.
  1948. * Carroll, Alan: What's the difference between Epoch and GNU Emacs version 19?.
  1949. * Casey, Nhi: Contributors.
  1950. * Changing fonts interactively: How do I switch fonts interactively?.
  1951. * Changing mouse selection attributes: How do I replace the mouse region selection underlining with a different style?.
  1952. * Changing the cursor: How do I change the cursor?.
  1953. * Character display and input: How can I configure Epoch to support full 8-bit character sets?.
  1954. * Chee, Dana: Contributors.
  1955. * Chen, Alice: Contributors.
  1956. * Coloring files: How can I associate a certain foreground color with a file?.
  1957. * Colors and Fonts: Colors and Fonts.
  1958. * Configuring Epoch: Configuring Epoch.
  1959. * Contributors: Contributors.
  1960. * Cursor, changing it: How do I change the cursor?.
  1961. * Cut and Paste: How can I cut and paste between Epoch and OpenLook?.
  1962. * Disclaimer: Disclaimer.
  1963. * Display and input of characters: How can I configure Epoch to support full 8-bit character sets?.
  1964. * Does Epoch support popup menus or menubars?: Does Epoch support popup menus or menubars?.
  1965. * Does Epoch support scrollbars?: Does Epoch support scrollbars?.
  1966. * Eight-bit characters: How can I configure Epoch to support full 8-bit character sets?.
  1967. * Emacs 19: What's the difference between Epoch and GNU Emacs version 19?.
  1968. * Emacs FAQ: Prerequisites.
  1969. * .emacs file: How can my .emacs file deal with both GNU Emacs and Epoch?.
  1970. * Emacs Lisp: Moving to Epoch 4 broke some lisp code that worked before.
  1971. * Emacs Lisp packages, locations: Where can I find Epoch-specific emacs lisp packages?.
  1972. * Epoch and GNU Emacs: Epoch and GNU Emacs.
  1973. * Epoch manual in PostScript: Where can I get a PostScript version of the Epoch manual?.
  1974. * Epoch Version: What is the latest version of Epoch?.
  1975. * Epoch-Specific Emacs Lisp Packages: Epoch-Specific Emacs Lisp Packages.
  1976. * Features of Epoch: What is Epoch?.
  1977. * Files, associating colors with: How can I associate a certain foreground color with a file?.
  1978. * Finding Emacs Lisp packages for Epoch: Where can I find Epoch-specific emacs lisp packages?.
  1979. * Finding Epoch: How can I get Epoch?.
  1980. * First window: How do I prevent the initial edit window from appearing?.
  1981. * Fisher, Bob: Contributors.
  1982. * Fonts, switching interactively: How do I switch fonts interactively?.
  1983. * Foreground color, interactively setting: How do I interactively select my foreground color?.
  1984. * Formatting the FAQ: Formatting the FAQ.
  1985. * Function keys insert garbage: How can I stop function keys from putting garbage in my buffer?.
  1986. * Function names changed: Moving to Epoch 4 broke some lisp code that worked before.
  1987. * Garbage from function keys: How can I stop function keys from putting garbage in my buffer?.
  1988. * GNU Emacs 19: What's the difference between Epoch and GNU Emacs version 19?.
  1989. * Graves, Jerry: Contributors.
  1990. * Handling Epoch-specific code: How can my .emacs file deal with both GNU Emacs and Epoch?.
  1991. * Highlighting and monochrome: Can I use highlighting packages on monochrome displays?.
  1992. * Highlighting: Highlighting.
  1993. * Highlighting regions of text: How do I highlight regions of text in a buffer with different styles?.
  1994. * How can I associate a certain foreground color with a file?: How can I associate a certain foreground color with a file?.
  1995. * How can I configure Epoch to support full 8-bit character sets?: How can I configure Epoch to support full 8-bit character sets?.
  1996. * How can I get Epoch?: How can I get Epoch?.
  1997. * How can I make more room for windows?: How can I make more room for windows?.
  1998. * How can I stop function keys from putting garbage in my buffer?: How can I stop function keys from putting garbage in my buffer?.
  1999. * How can I use Page Up and Page Down keys?: How can I use Page Up and Page Down keys?.
  2000. * How can my .emacs file deal with both GNU Emacs and Epoch?: How can my .emacs file deal with both GNU Emacs and Epoch?.
  2001. * How do I change the cursor?: How do I change the cursor?.
  2002. * How do I define edit screen attributes on a per-mode basis?: How do I define edit screen attributes on a per-mode basis?.
  2003. * How do I design my own really funky technicolor modeline?: How do I design my own really funky technicolor modeline?.
  2004. * How do I get the minibuffer back at the bottom of my edit window?: How do I get the minibuffer back at the bottom of my edit window?.
  2005. * How do I highlight regions of text in a buffer with different styles?: How do I highlight regions of text in a buffer with different styles?.
  2006. * How do I iconify my entire Epoch session at once?: How do I iconify my entire Epoch session at once?.
  2007. * How do I interactively select my foreground color?: How do I interactively select my foreground color?.
  2008. * How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?: How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?.
  2009. * How do I make the backspace key work properly?: How do I make the backspace key work properly?.
  2010. * How do I prevent the initial edit window from appearing?: How do I prevent the initial edit window from appearing?.
  2011. * How do I replace the mouse region selection underlining with a different style?: How do I replace the mouse region selection underlining with a different style?.
  2012. * How do I stop the windows from automatically raising upon entry?: How do I stop the windows from automatically raising upon entry?.
  2013. * How do I switch fonts interactively?: How do I switch fonts interactively?.
  2014. * How do I turn the keyboard bell off?: How do I turn the keyboard bell off?.
  2015. * I switched Epoch versions and my X resources are being ignored: I switched Epoch versions and my X resources are being ignored.
  2016. * Icon and window names: How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?.
  2017. * Iconifying all of epoch: How do I iconify my entire Epoch session at once?.
  2018. * Ignored resources: I switched Epoch versions and my X resources are being ignored.
  2019. * Index: Index.
  2020. * Inital edit window: How do I prevent the initial edit window from appearing?.
  2021. * Input and display of characters: How can I configure Epoch to support full 8-bit character sets?.
  2022. * Interactively setting foreground color: How do I interactively select my foreground color?.
  2023. * Joneja, Dev: Contributors.
  2024. * Kaplan, Simon: Advanced Questions.
  2025. * Kaplan, Simon: Contributors.
  2026. * Keyboard bell, turning it off: How do I turn the keyboard bell off?.
  2027. * Keyboard: Keyboard.
  2028. * Latest Changes: Latest Changes.
  2029. * Lillqvist, Tor: Contributors.
  2030. * Love, Chris: Advanced Questions.
  2031. * Love, Chris: Contributors.
  2032. * Love, Chris: How do I prevent the initial edit window from appearing?.
  2033. * Lucid Emacs: What's the difference between Epoch and GNU Emacs version 19?.
  2034. * Mailing lists: What Epoch newsgroups/mailing lists are out there?.
  2035. * Manuals: Prerequisites.
  2036. * Marshall, Simon: Contributors.
  2037. * McCool, Rob: Contributors.
  2038. * Menubars, support of: Does Epoch support popup menus or menubars?.
  2039. * Menus: Menus.
  2040. * Minibuffer window: How do I get the minibuffer back at the bottom of my edit window?.
  2041. * Modeline, customizing and coloring: How do I design my own really funky technicolor modeline?.
  2042. * Monochrome and highlighting: Can I use highlighting packages on monochrome displays?.
  2043. * Mouse selection attributes, changing: How do I replace the mouse region selection underlining with a different style?.
  2044. * Moving to Epoch 4 broke some lisp code that worked before: Moving to Epoch 4 broke some lisp code that worked before.
  2045. * Names of icons and windows: How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?.
  2046. * New version: I switched Epoch versions and my X resources are being ignored.
  2047. * Newsgroups: What Epoch newsgroups/mailing lists are out there?.
  2048. * On entry, windows raise: How do I stop the windows from automatically raising upon entry?.
  2049. * One minibuffer window: How do I get the minibuffer back at the bottom of my edit window?.
  2050. * OpenLook: How can I cut and paste between Epoch and OpenLook?.
  2051. * Other Resources: Other Resources.
  2052. * Page up or down keys, using: How can I use Page Up and Page Down keys?.
  2053. * Per-mode window attributes: How do I define edit screen attributes on a per-mode basis?.
  2054. * Pop up windows, stopping: How do I stop the windows from automatically raising upon entry?.
  2055. * Popup menus, support of: Does Epoch support popup menus or menubars?.
  2056. * PostScript version of Epoch manual: Where can I get a PostScript version of the Epoch manual?.
  2057. * Prerequisites: Prerequisites.
  2058. * Reporting bugs: Where do I send bug reports?.
  2059. * Rooms: How can I make more room for windows?.
  2060. * Screen attributes: How do I define edit screen attributes on a per-mode basis?.
  2061. * Scrollbars, support of: Does Epoch support scrollbars?.
  2062. * Silveira, Luis Miguel: How do I highlight regions of text in a buffer with different styles?.
  2063. * Smith, Arnold: Contributors.
  2064. * Smith, Arnold: How can I cut and paste between Epoch and OpenLook?.
  2065. * Steroids: What is Epoch?.
  2066. * Switching fonts interactively: How do I switch fonts interactively?.
  2067. * Text highlighting: How do I highlight regions of text in a buffer with different styles?.
  2068. * Thome, Michael: Contributors.
  2069. * Using Page Up and Page Down: How can I use Page Up and Page Down keys?.
  2070. * Version of Epoch: What is the latest version of Epoch?.
  2071. * Vignes, Ole: Contributors.
  2072. * Vignes, Ole: How do I make the backspace key work properly?.
  2073. * Virden, Larry: Latest Changes.
  2074. * Virtual Screens: How can I make more room for windows?.
  2075. * Weiner, Bob: Contributors.
  2076. * Wells, Joe: Contributors.
  2077. * Wells, Joe: How do I make the backspace key work properly?.
  2078. * Wells, Joe: How do I make the backspace key work properly?.
  2079. * What Epoch newsgroups/mailing lists are out there?: What Epoch newsgroups/mailing lists are out there?.
  2080. * What is Epoch?: What is Epoch?.
  2081. * What is the latest version of Epoch?: What is the latest version of Epoch?.
  2082. * What is this?: Top.
  2083. * What's the difference between Epoch and GNU Emacs version 19?: What's the difference between Epoch and GNU Emacs version 19?.
  2084. * Where can I find Epoch-specific emacs lisp packages?: Where can I find Epoch-specific emacs lisp packages?.
  2085. * Where can I get a PostScript version of the Epoch manual?: Where can I get a PostScript version of the Epoch manual?.
  2086. * Where do I send bug reports?: Where do I send bug reports?.
  2087. * Where is Epoch?: How can I get Epoch?.
  2088. * Window and icon names: How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?.
  2089. * Window attributes: How do I define edit screen attributes on a per-mode basis?.
  2090. * Window room: How can I make more room for windows?.
  2091. * Windows pop up, stopping: How do I stop the windows from automatically raising upon entry?.
  2092. * Windows raise on entry: How do I stop the windows from automatically raising upon entry?.
  2093. * Windows: Windows.
  2094. * X Resources ignored: I switched Epoch versions and my X resources are being ignored.
  2095. * X11 Windowing System: What is Epoch?.
  2096. * Zones: Moving to Epoch 4 broke some lisp code that worked before.
  2097.  
  2098.  
  2099. 
  2100. Tag table:
  2101. Node: Top97
  2102. Node: Disclaimer1916
  2103. Node: Latest Changes2513
  2104. Node: Formatting the FAQ2824
  2105. Node: Prerequisites4620
  2106. Node: Epoch and GNU Emacs5456
  2107. Node: What is Epoch?5893
  2108. Node: How can I get Epoch?6618
  2109. Node: What is the latest version of Epoch?7469
  2110. Node: Moving to Epoch 4 broke some lisp code that worked before8060
  2111. Node: I switched Epoch versions and my X resources are being ignored9639
  2112. Node: What's the difference between Epoch and GNU Emacs version 19?11113
  2113. Node: Configuring Epoch17940
  2114. Node: How can my .emacs file deal with both GNU Emacs and Epoch?18269
  2115. Node: How can I configure Epoch to support full 8-bit character sets?19381
  2116. Node: How can I cut and paste between Epoch and OpenLook?20643
  2117. Node: Windows22210
  2118. Node: How do I get the minibuffer back at the bottom of my edit window?22858
  2119. Node: How do I prevent the initial edit window from appearing?23248
  2120. Node: How do I stop the windows from automatically raising upon entry?24081
  2121. Node: How do I change the cursor?24630
  2122. Node: How do I define edit screen attributes on a per-mode basis?25859
  2123. Node: How do I make Epoch manage edit window and icon names based on the name of the current buffer(s)?26943
  2124. Node: How do I iconify my entire Epoch session at once?27741
  2125. Node: Does Epoch support scrollbars?28567
  2126. Node: How can I make more room for windows?29607
  2127. Node: Colors and Fonts31187
  2128. Node: How do I interactively select my foreground color?31618
  2129. Node: How do I switch fonts interactively?32907
  2130. Node: How can I associate a certain foreground color with a file?34755
  2131. Node: How do I design my own really funky technicolor modeline?35773
  2132. Node: How do I replace the mouse region selection underlining with a different style?37704
  2133. Node: Menus39174
  2134. Node: Does Epoch support popup menus or menubars?39325
  2135. Node: Keyboard45938
  2136. Node: How do I make the backspace key work properly?46250
  2137. Node: How can I use Page Up and Page Down keys?49347
  2138. Node: How can I stop function keys from putting garbage in my buffer?53345
  2139. Node: How do I turn the keyboard bell off?54113
  2140. Node: Highlighting54939
  2141. Node: How do I highlight regions of text in a buffer with different styles?55216
  2142. Node: Can I use highlighting packages on monochrome displays?58130
  2143. Node: Epoch-Specific Emacs Lisp Packages58860
  2144. Node: Where can I find Epoch-specific emacs lisp packages?59173
  2145. Node: Where can I get a PostScript version of the Epoch manual?61434
  2146. Node: Other Resources61843
  2147. Node: What Epoch newsgroups/mailing lists are out there?62093
  2148. Node: Where do I send bug reports?62740
  2149. Node: Advanced Questions63055
  2150. Node: Contributors66035
  2151. Node: Index67472
  2152. 
  2153. End tag table
  2154. -- 
  2155. Klacktoveedsedstene
  2156.  
  2157.